// 封装分类相关的业务代码

import { onBeforeRouteUpdate, useRoute } from "vue-router";
import { onMounted, ref } from "vue";
import { CategoryApi } from "../../../apis/category.ts";

export const useCategory = () => {
  const route = useRoute();
  // 获取分类数据
  const category = ref({});
  // 如果没有传递参数，就是route.params.id
  // 如果传递了参数，就是传递过来的id
  const getCategory = async (id = route.params.id) => {
    const res = await CategoryApi.getCategory(id as string);
    category.value = res.data.result;
  };
  onMounted(() => {
    getCategory();
  });
  //目标：路由参数变化的时候，可以把分类数据接口重新发送
  onBeforeRouteUpdate((to) => {
    console.log("路由变化了");
    // 使用最新的路由参数请求最新的分类数据
    console.log(to);
    return getCategory(to.params.id);
  });
  return {
    category,
  };
};
